home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-1.iso / Files / Tele / Pete Johnson / AreaTrix 1.0.4<source>.sit / PreScan.p < prev    next >
Encoding:
Text File  |  1990-03-27  |  2.7 KB  |  85 lines  |  [TEXT/PJMM]

  1. unit PreScan;
  2.  
  3. interface
  4.  
  5.  
  6. uses
  7.     Globals, NewFileUtils, HelloTabby;
  8.  
  9. procedure PreScan (GenericPath, CapsFwdName, CapsFREQName: str255; var FixPending: boolean);
  10.  
  11. implementation
  12.  
  13. { ------------------------------------------------------ }
  14.  
  15. procedure PreScan;
  16.  
  17.     var
  18.         OneLine, TempString, VolName: STR255;
  19.         GenImpRef, AreafixRef, Count, vRefNum: integer;
  20.         logicalEOF, RecStart, PlaceMark: longint;
  21.         MsgLine: array[1..7] of STR255;
  22.         Err: OSErr;
  23.         ValidMsg: boolean;
  24.  
  25.     begin
  26.         Err := GetVol(@VolName, vRefNum);        { Get volume ref # for default volume }
  27.         RecStart := 0;
  28.         Err := FSOpen(concat(GenericPath, 'Generic Import'), vRefNum, GenImpRef);
  29.         if Err = NoErr then
  30.             begin
  31.                 Err := GetEOF(GenImpRef, logicalEOF);
  32.                 if logicalEOF > 0 then
  33.                     while not AtEOF(GenImpRef) do
  34.                         begin
  35.                             ValidMsg := false;
  36.                             OneLine := '';
  37.                             for Count := 1 to 7 do
  38.                                 if not AtEOF(GenImpRef) then
  39.                                     Err := ReadALine(GenImpRef, MsgLine[Count]);
  40.                             if not AtEOF(GenImpRef) then
  41.                                 begin
  42.                                     TempString := MsgLine[7];
  43.                                     UprString(TempString, false);
  44.                                     if ((TempString = 'AREAFIX') | (TempString = 'AREATRIX')) then
  45.                                         ValidMsg := true
  46.                                     else if ((TempString = CapsFwdName) | (TempString = CapsFREQName)) then
  47.                                         ValidMsg := true;
  48.                                     if ValidMsg & (MsgLine[1][2] = 'M') & (MsgLine[1][1] <> 'D') then
  49.                                         begin
  50.                                             Err := GetFPos(GenImpRef, PlaceMark);
  51.                                             Err := SetFPos(GenImpRef, fsFromStart, RecStart);
  52.                                             OneLine := 'DM ';
  53.                                             Err := MyWriteLine(GenImpRef, OneLine);
  54.                                             Err := SetFPos(GenImpRef, fsFromStart, PlaceMark);
  55.                                             MakeTextFile('AreaTrix.req');
  56.                                             Err := FSOpen('AreaTrix.req', vRefNum, AreafixRef);
  57.                                             Err := SetFPos(AreafixRef, fsFromLEOF, 0);
  58.                                             for Count := 1 to 7 do
  59.                                                 Err := MyWriteLine(AreafixRef, MsgLine[Count]);
  60.                                             while (not AtEOF(GenImpRef)) & (OneLine <> NULL) do
  61.                                                 begin
  62.                                                     Err := ReadALine(GenImpRef, OneLine);
  63.                                                     Err := MyWriteLine(AreafixRef, OneLine)
  64.                                                 end;
  65.                                             Err := FSClose(AreafixRef);
  66.                                         end
  67.                                     else if not AtEOF(GenImpRef) then
  68.                                         repeat
  69.                                             Err := ReadALine(GenImpRef, OneLine)
  70.                                         until (OneLine = NULL) | (AtEOF(GenImpRef));
  71.                                     Err := GetFPos(GenImpRef, RecStart)
  72.                                 end        {    while not AtEOF(GenImpRef)    }
  73.                         end;    {    if not AtEOF(GenImpRef)    }
  74.                 Err := FSClose(GenImpRef)
  75.             end;
  76.         Err := FSOpen('AreaTrix.req', vRefNum, AreafixRef);
  77.         if Err = NoErr then
  78.             begin
  79.                 Err := FSClose(AreafixRef);
  80.                 FixPending := true    {    This insures that we process left-over AreaFix reqs    }
  81.             end
  82.         else
  83.             FixPending := false
  84.     end;
  85. end.    {    Unit    }